
#  序列化： ( dumps    dump)
#       就是把不可传输的对象        转换为可存储或可传输的过程；
#        list,dict,对象                str  ,bytes/bytearray
#  反序列：  (loads   load)
#        就是把在磁盘，等介质的数据  转换为对象。
#                                   loading ，加载中

#  pickle
#  json: 通用格式
#        可以是对象,包，json字符串
#   序列化之后  ---》 json 字符串
#                      可读性好

#  json  序列化对象
#  字符串 < --- > dict  < -函数定义的规则- > 对象
#       学生信息 ：  {}，Object

import json

#  对象序列化  ----》 磁盘
class People:
    def __init__(self,name,age):
        self.name = name
        self.age = age

p1 = People('李四',12)

def obj2dict(obj):
    return obj.__dict__

res = json.dumps(p1,default=obj2dict)
print(res)
print(type(res))
# {"name": "\u674e\u56db", "age": 12}
# <class 'str'>


# json  反序列化
def dictobj2(dict1):
    return People(dict1['name'],dict1['age'])

rng = json.loads(res,object_hook=dictobj2)
print(rng)
print(type(rng))
# <__main__.People object at 0x0000025C78293E48>
# <class '__main__.People'>















